// initDatabase.js
// 云数据库初始化脚本
// 在小程序开发工具中运行此脚本初始化数据库

const app = getApp()

Page({
  data: {
    initializing: false,
    result: ''
  },

  // 初始化数据库
  initDatabase() {
    this.setData({ initializing: true, result: '正在初始化数据库...' })
    
    const db = wx.cloud.database()
    
    // 创建示例菜品数据
    const sampleDishes = [
      {
        name: '番茄炒蛋',
        category: '家常菜',
        desc: '少油少盐版本，营养丰富',
        cookTime: '15分钟',
        difficulty: 2,
        createTime: db.serverDate(),
        updateTime: db.serverDate()
      },
      {
        name: '红烧肉',
        category: '家常菜',
        desc: '肥而不腻，入口即化',
        cookTime: '90分钟',
        difficulty: 4,
        createTime: db.serverDate(),
        updateTime: db.serverDate()
      },
      {
        name: '紫菜蛋花汤',
        category: '汤羹',
        desc: '清淡爽口，营养丰富',
        cookTime: '10分钟',
        difficulty: 1,
        createTime: db.serverDate(),
        updateTime: db.serverDate()
      },
      {
        name: '意大利面',
        category: '西餐',
        desc: '经典番茄肉酱口味',
        cookTime: '25分钟',
        difficulty: 3,
        createTime: db.serverDate(),
        updateTime: db.serverDate()
      }
    ]
    
    // 批量添加菜品
    Promise.all(sampleDishes.map(dish => {
      return db.collection('dishes').add({
        data: dish
      })
    }))
    .then(res => {
      this.setData({ 
        result: `成功初始化 ${res.length} 道菜品！`,
        initializing: false 
      })
      wx.showToast({
        title: '初始化成功',
        icon: 'success'
      })
    })
    .catch(err => {
      console.error('初始化失败：', err)
      this.setData({ 
        result: '初始化失败：' + err.message,
        initializing: false 
      })
      wx.showToast({
        title: '初始化失败',
        icon: 'none'
      })
    })
  },

  // 清空数据库
  clearDatabase() {
    wx.showModal({
      title: '确认清空',
      content: '确定要清空所有数据吗？此操作不可恢复！',
      success: res => {
        if (res.confirm) {
          this.clearData()
        }
      }
    })
  },

  // 执行清空
  clearData() {
    this.setData({ initializing: true, result: '正在清空数据库...' })
    
    const db = wx.cloud.database()
    
    // 清空菜品
    db.collection('dishes')
      .get()
      .then(res => {
        return Promise.all(res.data.map(item => {
          return db.collection('dishes').doc(item._id).remove()
        }))
      })
      .then(() => {
        // 清空订单
        return db.collection('orders')
          .get()
          .then(res => {
            return Promise.all(res.data.map(item => {
              return db.collection('orders').doc(item._id).remove()
            }))
          })
      })
      .then(() => {
        this.setData({ 
          result: '数据库已清空！',
          initializing: false 
        })
        wx.showToast({
          title: '清空成功',
          icon: 'success'
        })
      })
      .catch(err => {
        console.error('清空失败：', err)
        this.setData({ 
          result: '清空失败：' + err.message,
          initializing: false 
        })
        wx.showToast({
          title: '清空失败',
          icon: 'none'
        })
      })
  }
})